In a processing system, every process typically has an associated priority that specifies its importance relative to other processes. Processes that are ready to execute are executed in their order of priority. When executing, a process may send messages to and receive messages from other processes. Receipt of a message by one process from another process often makes the receiving process ready to execute. If the ready-to-execute receiving process is of a higher priority than the presently-executing process, in a real-time system, the presently-executing process is immediately preempted and the receiving process commences execution; in a time-sharing system, the presently-executing process continues to execute until it either becomes blocked or its execution-time slice expires, at which time the highest-priority ready-to-run process commences execution.
In a uniprocessor system, the fact that the message-sending process is executing means that no higher-priority processes are ready to execute, in a real-time system, or were ready to execute at the start of the present time slice, in a time-sharing system. Hence, the message-sending process does not preempt or postpone execution of any higher-priority processes by sending a message that may trigger execution of the message-receiving process.
In a multiprocessor system, a plurality of process may be executing simultaneously, thereby complicating the scenario of a uniprocessor system. Distributed operating systems are intended to create an environment in a multiprocessor system that appears to system users to be the same as a uniprocessor system. However, in a multi-processor system, processes on each processor execute in the order of their priority, and a hence message from an executing process on one processor to a process on another processor may preempt or postpone execution on the other processor of ready-to-execute processes having a higher priority than the sending process, if the receiving process has an even-higher priority. This is clearly inconsistent with uniprocessor process priority handling, and violates the goal of making the distributed operating system environment appear as a uniprocessor system.